package com.xiaohua.api.service;

import java.util.List;

/**
 * API操作日志服务接口
 * 
 * @author 小花
 * @date 2023-07-15
 */
public interface IOperationLogService {
    
    /**
     * 记录基本操作日志
     * 
     * @param userId 用户ID
     * @param operationType 操作类型
     * @param status 状态码
     * @return 是否记录成功
     */
    boolean logOperation(Long userId, String operationType, int status);
    
    /**
     * 记录包含文件ID的操作日志
     * 
     * @param userId 用户ID
     * @param fileId 文件ID
     * @param operationType 操作类型
     * @param status 状态码
     * @return 是否记录成功
     */
    boolean logOperation(Long userId, Long fileId, String operationType, int status);
    
    /**
     * 记录包含多个文件ID的操作日志
     * 
     * @param userId 用户ID
     * @param fileIds 文件ID列表
     * @param operationType 操作类型
     * @param status 状态码
     * @return 是否记录成功
     */
    boolean logOperationWithMultipleFiles(Long userId, List<Long> fileIds, String operationType, int status);
    
    /**
     * 从API返回结果中提取文件ID并记录操作日志
     * 
     * @param userId 用户ID
     * @param result API返回结果
     * @param operationType 操作类型
     * @param isMultiFile 是否多文件输出
     * @return 是否记录成功
     */
    boolean logOperationFromResult(Long userId, Object result, String operationType, boolean isMultiFile);
} 